package ${package}.${module.packageName}.service;

import java.util.List;

<@point name="JAVA:IMPORT" />

<#assign classComment = "${module.explain}业务接口">
<#include "../javadoc/classComment.ftl">
public interface ${module.name}Service {
	
	/**
	 * 添加${module.explain}
	 * @param ${module.name ? uncap_first}
	 */
	void add${module.name}(${module.name} ${module.name ? uncap_first});
	
	/**
	 * 根据主键更新${module.explain}信息，对象中的主键必须提供
	 * @param ${module.name ? uncap_first}
	 */
	void update${module.name}(${module.name} ${module.name ? uncap_first});
	
	/**
	 * 批量删除${module.explain}
	 * @param ids 预删除的主键ID数组，支持多条记录删除
	 */
	void delete${module.name}(String[] ids);
	
	/**
	 * 查询单个${module.explain}对象
	 * @param id 主键ID
	 * @return ${module.explain}，如果没有匹配的记录则返回null
	 */
	${module.name} get${module.name}(String id);
	
	/**
	 * 分页查询满足条件的${module.name}集合
	 * @param query 查询条件对象，其中包含了分页信息
	 * @return 满足条件的${module.name}对象，如果没有匹配的记录，则返回空的List对象，而不是null
	 */
	List<${module.name}> list${module.name}(${module.name}Query query);
	
	<@point name="JAVA:INTERFACE" />
}